perf[array]: add the SimplifyCache to optimize#7948
Conversation
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Merging this PR will improve performance by 12.93%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | encode_varbin[(1000, 2)] |
169 µs | 148.9 µs | +13.51% |
| ⚡ | Simulation | encode_varbin[(1000, 32)] |
176 µs | 155.5 µs | +13.23% |
| ⚡ | Simulation | encode_varbin[(1000, 4)] |
169.9 µs | 149.3 µs | +13.75% |
| ⚡ | Simulation | encode_varbin[(1000, 8)] |
166.8 µs | 149.9 µs | +11.24% |
| 🆕 | Simulation | optimize_or_chain[200] |
N/A | 440.3 µs | N/A |
Tip
Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ji/fix-try-opt-bench (48e2902) with develop (13c06b8)
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingVortex (geomean): 0.980x ➖ datafusion / vortex-file-compressed (0.980x ➖, 0↑ 0↓)
|
File Sizes: PolarSignals ProfilingNo file size changes detected. |
Benchmarks: FineWeb NVMeVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.976x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.983x ➖, 0↑ 0↓)
datafusion / parquet (0.971x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.959x ➖, 2↑ 0↓)
duckdb / vortex-compact (0.968x ➖, 1↑ 0↓)
duckdb / parquet (0.926x ➖, 1↑ 0↓)
Full attributed analysis
|
File Sizes: FineWeb NVMeNo file size changes detected. |
Benchmarks: TPC-H SF=1 on NVMEVerdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.181x ❌, 0↑ 18↓)
datafusion / vortex-compact (1.174x ❌, 0↑ 20↓)
datafusion / parquet (1.102x ❌, 1↑ 15↓)
datafusion / arrow (1.248x ❌, 0↑ 21↓)
duckdb / vortex-file-compressed (1.163x ❌, 0↑ 19↓)
duckdb / vortex-compact (1.151x ❌, 0↑ 15↓)
duckdb / parquet (1.082x ➖, 0↑ 7↓)
duckdb / duckdb (1.127x ❌, 0↑ 17↓)
Full attributed analysis
|
File Sizes: TPC-H SF=1 on NVMENo file size changes detected. |
Benchmarks: TPC-DS SF=1 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.985x ➖, 4↑ 1↓)
datafusion / vortex-compact (0.998x ➖, 5↑ 5↓)
datafusion / parquet (1.005x ➖, 2↑ 2↓)
duckdb / vortex-file-compressed (1.003x ➖, 11↑ 14↓)
duckdb / vortex-compact (0.965x ➖, 36↑ 11↓)
duckdb / parquet (1.000x ➖, 1↑ 3↓)
duckdb / duckdb (1.034x ➖, 1↑ 8↓)
Full attributed analysis
|
File Sizes: TPC-DS SF=1 on NVMENo file size changes detected. |
Benchmarks: FineWeb S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.203x ➖, 0↑ 2↓)
datafusion / vortex-compact (1.081x ➖, 0↑ 2↓)
datafusion / parquet (1.256x ➖, 0↑ 4↓)
duckdb / vortex-file-compressed (1.155x ➖, 0↑ 1↓)
duckdb / vortex-compact (1.139x ➖, 0↑ 2↓)
duckdb / parquet (1.098x ➖, 0↑ 0↓)
Full attributed analysis
|
Benchmarks: Random AccessVortex (geomean): 0.955x ➖ unknown / unknown (0.969x ➖, 2↑ 0↓)
|
Benchmarks: Statistical and Population GeneticsVerdict: No clear signal (low confidence) duckdb / vortex-file-compressed (1.126x ❌, 0↑ 5↓)
duckdb / vortex-compact (1.094x ➖, 0↑ 4↓)
duckdb / parquet (1.103x ❌, 0↑ 7↓)
Full attributed analysis
|
File Sizes: Statistical and Population GeneticsNo file size changes detected. |
Benchmarks: Clickbench on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.990x ➖, 1↑ 0↓)
datafusion / parquet (0.996x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.041x ➖, 1↑ 9↓)
duckdb / parquet (0.985x ➖, 0↑ 0↓)
duckdb / duckdb (0.998x ➖, 1↑ 0↓)
Full attributed analysis
|
File Sizes: Clickbench on NVMEFile Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (1.263x ➖, 0↑ 10↓)
datafusion / vortex-compact (1.204x ➖, 0↑ 7↓)
datafusion / parquet (1.160x ➖, 0↑ 5↓)
duckdb / vortex-file-compressed (1.125x ➖, 1↑ 1↓)
duckdb / vortex-compact (1.137x ➖, 0↑ 2↓)
duckdb / parquet (1.165x ➖, 0↑ 1↓)
Full attributed analysis
|
Benchmarks: TPC-H SF=10 on NVMEVerdict: No clear signal (low confidence) datafusion / vortex-file-compressed (0.836x ✅, 21↑ 0↓)
datafusion / vortex-compact (0.867x ✅, 20↑ 0↓)
datafusion / parquet (0.901x ➖, 10↑ 0↓)
datafusion / arrow (0.861x ✅, 20↑ 0↓)
duckdb / vortex-file-compressed (0.870x ✅, 14↑ 1↓)
duckdb / vortex-compact (0.907x ➖, 13↑ 3↓)
duckdb / parquet (0.962x ➖, 0↑ 0↓)
duckdb / duckdb (0.939x ➖, 1↑ 0↓)
Full attributed analysis
|
File Sizes: TPC-H SF=10 on NVMENo file size changes detected. |
Benchmarks: CompressionVortex (geomean): 0.990x ➖ unknown / unknown (0.986x ➖, 6↑ 0↓)
|
Benchmarks: TPC-H SF=10 on S3Verdict: No clear signal (environment too noisy confidence) datafusion / vortex-file-compressed (0.987x ➖, 0↑ 1↓)
datafusion / vortex-compact (1.020x ➖, 0↑ 1↓)
datafusion / parquet (1.049x ➖, 0↑ 3↓)
duckdb / vortex-file-compressed (0.956x ➖, 1↑ 1↓)
duckdb / vortex-compact (0.950x ➖, 1↑ 0↓)
duckdb / parquet (0.950x ➖, 0↑ 0↓)
Full attributed analysis
|
Cache optimisations to array in try_optimize on the way down